package xyz.luhui1hao.sell.service;

import xyz.luhui1hao.sell.domain.ProductInfo;
import xyz.luhui1hao.sell.dto.CartItemDTO;

import java.util.List;

/**
 * @InterfaceName ProductInfoService
 * @Description TODO
 * @Author luhui1hao
 * @Date 2018/8/17 上午10:13
 * @Version 1.0
 */
public interface ProductInfoService {

    /**
     * 根据Id查询商品
     * @param productId
     * @return
     */
    ProductInfo findOne(String productId);

    /**
     * 查询所有上架商品
     * @return
     */
    List<ProductInfo> findUpAll();

    /**
     * 查询所有商品
     * @return
     */
    List<ProductInfo> findAll(int page, int size);

    /**
     * 根据状态查找商品列表
     * @param productStatus
     * @return
     */
    List<ProductInfo> findByProductStatus(Integer productStatus);

    /**
     * 添加商品
     * @return
     */
    int insertProductInfo(ProductInfo productInfo);

    /**
     * 更新商品
     * @return
     */
    int updateProductInfo(ProductInfo productInfo);

    /**
     * 加库存
     * @param cartItemDTOList
     */
    void increaseStock(List<CartItemDTO> cartItemDTOList);

    /**
     * 减库存
     * @param cartItemDTOList
     */
    void decreaseStock(List<CartItemDTO> cartItemDTOList);

}
